// import com.alibaba.druid.sql.ast.SQLName_ptr;
// import com.alibaba.druid.sql.ast.SQLObjectImpl;
// import com.alibaba.druid.sql.visitor.SQLASTVisitor;

// import java.util.ArrayList;
// import java.util.List;
#pragma once
#include "../SQLObjectImpl.h"
#include "SQLAlterTableItem.h"

class SQLAlterTableReplaceColumn 
: virtual public SQLObjectImpl ,
virtual public SQLAlterTableItem
{
public:
  SQLColumnDefinition_list_ptr columns;

  // for mysql
  SQLName_ptr firstColumn;
  SQLName_ptr afterColumn;

  BOOL_ptr first;

  SQLAlterTableReplaceColumn();
  SHAREDOBJECT(SQLAlterTableReplaceColumn);
  // @Override
  void accept0(SQLASTVisitor_ptr visitor);

  SQLColumnDefinition_list_ptr getColumns();

  void addColumn(SQLColumnDefinition_ptr column);

  SQLName_ptr getFirstColumn();

  void setFirstColumn(SQLName_ptr first);

  BOOL_ptr isFirst();

  void setFirst(BOOL_ptr first);

  SQLName_ptr getAfterColumn();

  void setAfterColumn(SQLName_ptr after);
};
